// 使用Vuex进行传值
// 每一个 Vuex 应用的核心就是 store（仓库），它包含着你的应用中大部分的状态 (state)。
// 状态管理有5个核心：state、getter、mutation、action、module
import  Vue from "vue"
import Vuex from "vuex"
Vue.use(Vuex)
//Vuex.Store 构造器选项
const store = new Vuex.Store({
	// 存放状态
	state:{
		statusheight:'',
		// 用户信息
		userinfo:{
			accid:'',
			token:''
		},
		screenWidth:'',
		// 搜索用户账号
		searchinfo:'',
		// 点击得到的好友的账号
		friendaccid:'',
		screenHeight:'',
	},
	// 同步(这一波同步执行完后再在异步执行)
	mutations:{
		// 存放顶部距离
		setstatusheight(state,height){
			// console.log("高度",height)
			state.statusheight = height
		},
		// 存放屏幕长度
		setscreenWidth(state,width){
			state.screenWidth = width
			// console.log("宽度",width)
		},
		// 存放屏幕高度
		setscreenHeight(state,height){
			state.screenHeight = height
			console.log("高度",height)
		},
		// 存放用户账户信息
		setuserinfoaccid(state,accid){
			state.userinfo.accid = accid
			// console.log("账号",accid)
		},
		// 存放用户登录token
		setuserinfotoken(state,token){
			state.userinfo.token = token
			// console.log("token",token)
		},
		// 存放搜查的人的accid
		setsearchinfoaccid(state,accid){
			state.searchinfo = accid
			// console.log("搜索",accid)
		},
		// 存放好友的accid
		setfriendaccid(state,accid){
			state.friendaccid = accid
			console.debug("好友",accid)
		}
	},
	// 异步
	actions:{
			// 获取顶部距离
		getstatusheight(context,height){
			context.commit('setstatusheight',height)
		},
		// 获取屏幕长度
		getscreenWidth(context,width){
			context.commit("setscreenWidth",width)
		},
		// 存放屏幕高度
		getscreenHeight(context,height){
			context.commit("setscreenHeight",height)
		},
		// 获取用户账户信息
		getuserinfoaccid(context,accid){
			context.commit('setuserinfoaccid',accid)
		},
		// 获取用户token
		getuserinfotoken(context,token){
			context.commit('setuserinfotoken',token)
		},
		// 获取搜查的人的accid
		getsearchinfoaccid(context,accid){
			context.commit('setsearchinfoaccid',accid)
		},
		// 获取好友的accid
		getfriendaccid(context,accid){
			context.commit('setfriendaccid',accid)
		}
		
	}
})

// 导出
export default store